public class question_09 {
}
class Solution_09 {
    public boolean isPalindrome(int x) {
//        //负数进行返回
//        if(x<0)
//            return false;
//        //将整数转化成字符串
//        String s = Integer.toString(x);
//        char[] arr = s.toCharArray();
//        int l=0;
//        //采用头尾指针的方式进行遍历
//        int r=arr.length-1;
//        while (l<r){
//            if(arr[l]!=arr[r])
//                break;
//            l++;
//            r--;
//        }
//        if(l>=r)
//            return true;
//        else
//            return false;

        //解法二，不用字符串数组的方式
//        if(x<0)
//            return false;
//        if(x<10)
//            return true;
//        int num=0;//用来统计这个数字总共有多少位
//        int temp=x;
//        while(temp!=0){
//            temp=temp/10;
//            num++;
//        }
//        int len=num/2;
//        int l=x/(num%2==0?(int)Math.pow(10,len):(int)Math.pow(10,len+1));//把x的前半部分数给取出来
//        int r=0;
//        while(len!=0){
//            r=r*10+x%10;
//            x=x/10;
//            len--;
//        }
//        return l==r?true:false;

        //解法三（官方高能版）
        if(x<0||(x%10==0&&x!=0))
            return false;
        //因为像1230,1420,100这些肯定不是回文数
        int re=0;
        while(x>re){
            re=re*10+x%10;
            x=x/10;
        }
        return x==re||x==re/10;
    }
}
